#EngineLib Makefile

ROOT_SOURCES= Engine.cpp

CONTENT_SOURCES= Content/Tile.cpp \
    Content/Map.cpp \
    Content/MapLoader.cpp
    
NETWORK_SOURCES= Networking/Message.cpp \
    Networking/MessageIterator.cpp \
    Networking/Packets.cpp \
    Networking/MessageQueue.cpp \
    Networking/PacketHelper.cpp

GRAPHIC_SOURCES= Graphics/BaseSprite.cpp \
    Graphics/StaticSprite.cpp \
    Graphics/RenderedSprite.cpp \
    Graphics/AnimatedSprite.cpp \
    Graphics/LayeredSprite.cpp \
    Graphics/SpriteSet.cpp \
    Graphics/SpriteManager.cpp \
	Graphics/BaseTransformation.cpp \
	Graphics/MatrixTransformation.cpp \
    Graphics/GameDrawer.cpp \
    Graphics/Camera.cpp \
    Content/MapManager.cpp \
    InputHandler.cpp

UI_SOURCES= Graphics/UI/InterfaceEvent.cpp \
    Graphics/UI/InterfaceEventHandler.cpp \
    Graphics/UI/InterfaceElement.cpp \
    Graphics/UI/IconButton.cpp \
    Graphics/UI/Panel.cpp \
    Graphics/UI/ScrollPanel.cpp \
    Graphics/UI/TextBox.cpp \
    Graphics/UI/StackPanel.cpp \
    Graphics/UI/UIManager.cpp \
    Graphics/UI/Label.cpp \
    Graphics/UI/Window.cpp

UTILITY_SOURCES= Utilities/StringHelper.cpp \
    Utilities/MemoryPool.cpp \
    Utilities/TandemTimer.cpp \
    Utilities/IntervalCounter.cpp \
    Utilities/CollisionHelper.cpp \
    Utilities/Logger.cpp \
    Utilities/FileLogger.cpp

SCRIPTING_SOURCES= Scripting/ScriptEngine.cpp \
    Scripting/ScriptableVector.cpp

OBJECT_SOURCES= Objects/BaseObject.cpp \
    Objects/ObjectManager.cpp \
    Objects/Entity.cpp \
    Objects/CharacterEntity.cpp \
    Objects/PlayerEntity.cpp \
    Objects/EntityManager.cpp \
    Objects/Region.cpp \
    Objects/RegionManager.cpp

ENGINE_SOURCES= $(CONTENT_SOURCES) $(ROOT_SOURCES) $(UTILITY_SOURCES) $(NETWORK_SOURCES) $(GRAPHIC_SOURCES) $(UI_SOURCES) $(SCRIPTING_SOURCES) $(OBJECT_SOURCES)

DIRECTORIES= Utilities Scripting Objects Networking Graphics Content Graphics/UI

ENGINE_OBJECTS=$(ENGINE_SOURCES:.cpp=.o)

ROOT_OBJECTS=$(ROOT_SOURCES:.cpp=.o)
CONTENT_OBJECTS=$(CONTENT_SOURCES:.cpp=.o)
UTILITY_OBJECTS=$(UTILITY_SOURCES:.cpp=.o)
SCRIPTING_OBJECTS=$(SCRIPTING_SOURCES:.cpp=.o)
OBJECT_OBJECTS=$(OBJECT_SOURCES:.cpp=.o)
NETWORK_OBJECTS=$(NETWORK_SOURCES:.cpp=.o)
GRAPHICS_OBJECTS=$(GRAPHIC_SOURCES:.cpp=.o)
UI_OBJECTS=$(UI_SOURCES:.cpp=.o)

